In diesem Kapitel schauen wir uns die ersten Schritte in PHP an. PHP, was für Hypertext Preprocessor steht und ursprünglich als Personal Home Page Tools bezeichnet wurde, ist eine serverseitige Skriptsprache mit einer an C und Perl angelehnten Syntax, die zur Erstellung dynamischer Webseiten oder Web-Anwendungen verwendet wird. PHP kommt auf über siebzig Prozent aller Websites als serverseitige Programmiersprache zum Einsatz. Das wird vor allem durch beliebte Content-Management-Systeme wie WordPress erreicht, das allein etwa ein Drittel aller Webseiten nutzt. PHP ist dynamisch typisiert und bietet breite Unterstützung für Datenbanken, zahlreiche Internetprotokolle sowie eine Vielzahl von Funktionsbibliotheken. Eine PHP-Datei wird vom PHP-Interpreter ausgeführt und ist keine HTML-Datei für den Browser des Clients. Sie wird vom Webserver an den PHP-Interpreter übergeben, dessen Ausgabe in der Regel eine HTML-Seite ist. Alles, was außerhalb der speziellen PHP-Klammern steht, wird unverändert an die Ausgabe und damit zum Client gesendet – einschließlich Leerzeichen und Zeilenumbrüchen. Wird eine PHP-Datei über den Client aufgerufen, so wird der Inhalt nicht wie bei einer HTML-Datei direkt als HTTP-Response an den Client zurückgegeben. Stattdessen leitet der Webserver die Datei an den PHP-Interpreter weiter, der das Ergebnis als HTTP-Response an den Client sendet. So wird sichergestellt, dass PHP-Code niemals als Text an den Client gesendet wird, wenn der Webserver korrekt konfiguriert ist. Ein einfaches Beispiel ist der Aufruf der Funktion date. Das Ergebnis, etwa die aktuelle Serverzeit, wird zum Client gesendet, niemals jedoch der Quelltext der PHP-Datei. Dies ist wichtig, da PHP-Dateien häufig Passwörter oder Zugangsdaten enthalten können, die nicht öffentlich werden dürfen. Konstanten in PHP werden mit define definiert. Einfache Ausgaben erfolgen mit echo. Konstanten sind global, also auf der gesamten Seite sichtbar, und können nach ihrer Definition nicht mehr geändert oder entfernt werden. Ein erneutes define führt zu einer Fehlermeldung. Variablen benötigen in PHP keine explizite Deklaration. Sie beginnen immer mit einem Dollar-Zeichen, und PHP typisiert sie intern dynamisch. Die wichtigsten Datentypen sind Boolean, Ganzzahl (int, integer, long), Fließkommazahl (float, real, double), Zeichenkette (String), Arrays (indiziert oder assoziativ) sowie Objekte. PHP-Code beginnt immer mit . Er kann direkt in HTML-Dokumente eingebunden werden. Wichtig ist dabei die Dateiendung .php, denn nur dann wird der Code vom Interpreter ausgeführt. Dateien mit der Endung .html würden den PHP-Code als Text an den Client senden. Was tatsächlich an den Client gesendet wird, enthält keinen PHP-Code. HTML-Elemente können auch direkt mit PHP ausgegeben werden, was den Code allerdings schnell unübersichtlich macht, da HTML-Elemente dann als Zeichenketten betrachtet werden. Viele Entwicklungsumgebungen erkennen so keine Fehler mehr im HTML-Code. Einige Besonderheiten gibt es beim Boolean-Typ: Die Zahl 1 gilt als true, ein leerer String als false. Mit Funktionen wie is_bool oder is_integer kann der Datentyp einer Variablen geprüft werden. Da false bei PHP lediglich eine leere Zeichenkette ist, kommt es beim Debuggen häufig zu Problemen, da die Ausgabe „eins“ lauten kann, wenn die Variable false ist. Der Zugriff auf nicht initialisierte Variablen ist verboten. Mit isset kann geprüft werden, ob eine Variable gesetzt ist, unset entfernt Variablen. Am Ende ihres Gültigkeitsbereiches werden Variablen von PHP automatisch gelöscht. Wer sowohl Datentyp als auch Wert einer Variablen überprüfen möchte, sollte var\_dump verwenden, das eine übersichtliche Ausgabe liefert. Dies löst auch das Problem, dass false bei der direkten Ausgabe nicht sichtbar ist. Strings werden in PHP mit einfachen oder doppelten Anführungszeichen begrenzt. Bei doppelten Anführungszeichen werden Variablen und Sonderzeichen ausgewertet, bei einfachen nicht. Strings können jeweils das andere Zeichen als Begrenzung enthalten. Seit PHP 5.6 ist der Standardzeichensatz UTF-8. Im Gegensatz zu vielen anderen Sprachen werden Zeichenketten in PHP mit Punkten verkettet. Sie können Strings wie Arrays behandeln. Es gibt viele eingebaute Funktionen zur Suche, zum Vergleich, zum Ersetzen und zur Umwandlung von Zeichen in Zeichenketten sowie zur HTML-Bearbeitung, etwa um Umlaute für URLs umzuwandeln. Mit echo können Sie auf verschiedene Arten Ausgaben erzeugen, beispielsweise "Hallo Frank" auf mehrere Weisen. Auch das Einbinden von Funktionen oder Klassen aus anderen Dateien ist mit require\_once oder include\_once möglich. Der Dateiname kann dabei dynamisch bestimmt werden. Eine fehlende Datei führt bei require\_once zu einem Abbruch, bei include\_once zu einer Warnung. Skripte können per Kommando sofort beendet werden. Abschließend noch einige Basics: Zuweisungsoperatoren, wie sie aus anderen Sprachen bekannt sind, Vergleichsoperatoren mit doppeltem und dreifachem Gleichheitszeichen, Bitoperatoren, Inkrement- und Dekrement-Operatoren sowie viele Funktionen für Datum, Uhrzeit, Konvertierungen und Zufallszahlen. Probieren Sie die Beispiele am besten selbst aus und experimentieren Sie mit den Funktionen.